﻿// int [][] jagged1 = new int [3][];
// jagged1 [0] = new int [] {1, 2, 3};
// jagged1 [1] = new int [] {4, 5};
// jagged1 [2] = new int [] {6, 7, 8, 9};

// int [][] jagged2 = {
//     new int [] {10, 20},
//     new int [] {30, 40, 50},
//     new int [] {60}
// };

// int [][] jagged3 = new int [2][];
// jagged3 [0] = new int [3];
// jagged3 [1] = new int [1];
// jagged3 [0][1] = 99;

// Console.WriteLine("一");
// PrintJagged(jagged1);
// Console.WriteLine("二");
// PrintJagged(jagged2);
// Console.WriteLine("三");
// PrintJagged(jagged3);

// int [][] jagged = {
//     new int []{0,1,2},
//     null,
//     new int []{3,4,5},
// };
// for(int i = 0; i < jagged.Length; i++){
//     Console.WriteLine($"第{i}行：");
//     if(jagged[i] != null){
//         Console.WriteLine($"第{i}行列数：{jagged[i].Length}");
//         foreach(int num in jagged[i]){
//             Console.WriteLine(num + " ");
//         }
//     }
//     else {
//         Console.Write("空行");
//     }
//     Console.WriteLine();
// }




// static void PrintJagged(int [][] arr){
//     foreach(int[] row in arr){
//         Console.WriteLine(string.Join(",", row));
//     }
// }

// int [][] jagged4 = {
//     new int [] {5, 9, 2},
//     new int [] {7, 1},
//     new int [] {4, 8, 6, 0}
// };
// foreach(int [] row in jagged4){
//     Array.Sort(row);
// }

// Array.Sort(jagged4, (x, y) => x.Length.CompareTo(y.Length));
// Console.WriteLine("排序后：");
// PrintJagged(jagged4);

// int [][] jagged5 = {
//     new int []{1, 2, 3},
//     new int []{4, 5},
//     new int []{6}
// };
// Array.Reverse(jagged5);
// foreach(int [] row in jagged5){
//     Array.Reverse(row);//反转
// }
// PrintJagged(jagged5);

// int [][] jagged6 = {
//     new int []{10, 20},
//     new int []{30, 40, 50},
//     new int []{60}
// };
// int target = 50;
// for(int i = 0; i < jagged6.Length; i++){
//     if(jagged6[i] == null) continue;
//     int index = Array.IndexOf(jagged6[i], target);//查询
//     if(index != -1){
//         Console.WriteLine($"找到{target}, 位置：[{i}][{index}]");
//         return ;
//     }
// }
// Console.WriteLine("未找到！");


// int [][]  source = {
//     new int []{1, 2},
//     new int []{3, 4, 5},
// };

// int [][] deepCopy = new int [source.Length][];
// for(int i = 0; i < source.Length; i++){
//     deepCopy[i] = new int [source[i].Length];
//     Array.Copy(source[i], deepCopy[i], source[i].Length);
// }

// int [][] shalllowCopy = (int [][])source.Clone();
// source[0][0] = 999;

// Console.WriteLine("浅拷贝数组：" + shalllowCopy[0][0]);
// Console.WriteLine("深拷贝数组：" + deepCopy[0][0]);

int [][] jagged7 = {
    new int []{5,9,2},
    new int []{7,1},
    null
};

if(jagged7[0] != null){
    Array.Clear(jagged7[0], 0, 2);
}
Array.Clear(jagged7, 0, jagged7.Length);

Console.WriteLine("清空后：");
PrintArray7(jagged7);

static void PrintArray7(int [][] arr){
    foreach(int[] row in arr){
        Console.WriteLine(row == null ? "null" : string.Join(",", row));
    }
}